#include "red_juego.h"
#include "red_msgsalchat.h"
#include <iostream>
#include <fstream>

using namespace std;

namespace red {

Juego::Juego(Socket *p_pSocket) :
	m_pSocket(p_pSocket) {
}

Juego::~Juego() {
}

void Juego::enviarMensaje(IMsgSal *p_pMsgSal) {
	Protocolo t_Protocolo(this->m_pSocket);
	t_Protocolo.bEnviarMensaje(p_pMsgSal);
}

void Juego::actualizar(IMsgEnt *p_pMsgEnt) {

	this->m_Mutex.lock();

	switch (p_pMsgEnt->getID()) {
		case MSG_ENT_ID_CHAT:
			this->actualizarChat(static_cast<MsgEntChat *>(p_pMsgEnt));
			break;
		case MSG_ENT_ID_TEXTURA:
			this->actualizarTextura(static_cast<MsgEntTextura *>(p_pMsgEnt));
			break;
	}

	this->m_Mutex.unlock();
}

void Juego::actualizarChat(MsgEntChat *p_pMsgEntChat) {
	cout << p_pMsgEntChat->getRemitente() << "> " << p_pMsgEntChat->getTexto() << endl;
}

void Juego::actualizarTextura(MsgEntTextura *p_MsgEntTextura) {

	ofstream t_ofsTextura("textura.bmp", ios::binary);

	if (!t_ofsTextura) {
	} else {
		t_ofsTextura << p_MsgEntTextura->getTextura();
		t_ofsTextura.close();
	}
}

}
